package cn.jilian.admin.tool.service;

import java.util.List;
import java.util.Map;

/**
 * hhoss规则配置服务
 * */
public interface HossRuleService {
	
	/**
	 * 查询所有支持的执行器元数据信息
	 * */
	List<Map<String,Object>> getAllExecutors();
	
	/**
	 * 查询所有内置表达式函数
	 * */
	List<Map<String,Object>> getAllExprFunctions();
	
	
	/**
	 * 获取指定执行器的配置项元数据
	 * */
	Map<String,Object> getConfigMetas(int executorId);
	
	/**
	 * 新增规则
	 * */
	long addRule(Map<String,Object> config,long executorId);
	
	/**
	 * 关联规则
	 * */
	long attachRule(long fid,long rid);
	
	
	/**
	 * 调整规则关联字段排序
	 * */
	int moveRuleFieldSeq(long sid,int step);
	
	/**
	 * 更新关联规则位置
	 * */
	int moveRelatedRuleSeq(long sid,long newParentId,long newSeq);
	
	/**
	 * 为规则添加输入字段
	 * */
	long addRuleInputField(long ruleId,long fieldDictId);
	
	/**
	 * 为规则添加输出字段
	 * */
	long addRuleOutputField(long ruleId,long fieldDictId);
	
	/**
	 * 删除规则关联字段
	 * */
	int deleteRuleField(long fieldId);
	
	/**
	 * 删除指定规则
	 * */
	int deleteRule(long ruleId);
	
	/**
	 * 删除指定规则关联关系
	 * */
	int detachRuleRelation(long relateId);

	/**
	 * 查询规则关联规则
	 * */
	List<Map<String,Object>>  getRelatedRules(long id);

}
